#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

The source in this directory has been derived from libbzip2 version
1.0.6 downloaded from http://www.bzip.org.

In an effort to provide ease of syncing with the upstream code, this
source hasn't changed much. The usual Solaris coding standards have
been waived. It does not pass cstyle. But, enough modifications were
made so that the code does compile and lint cleanly.

Some modifications have been made for use in the Solaris kernel:
1) compilation errors were corrected
2) lint complaints were fixed
3) a few utility interfaces were added
	BZ2_bzCompressInitSize
	BZ2_bzCompressReset
	BZ2_bzDecompressReset
	BZ2_bzErrorString


Here is a complete list of changes made by Sun to the original 1.0.6
source:

diff -u bzip2-1.0.6/bzlib.c ./bzlib.c
--- bzip2-1.0.6/bzlib.c	Fri Sep 10 18:38:23 2010
+++ ./bzlib.c	Wed Dec 29 20:47:11 2010
@@ -96,11 +96,89 @@
    return 1;
 }
 
+/*
+ * Added for Solaris kernel
+ */
+#define BZES \
+BZE(BZ_OK) \
+BZE(BZ_RUN_OK) \
+BZE(BZ_FLUSH_OK) \
+BZE(BZ_FINISH_OK) \
+BZE(BZ_STREAM_END) \
+BZE(BZ_SEQUENCE_ERROR) \
+BZE(BZ_PARAM_ERROR) \
+BZE(BZ_MEM_ERROR) \
+BZE(BZ_DATA_ERROR) \
+BZE(BZ_DATA_ERROR_MAGIC) \
+BZE(BZ_IO_ERROR) \
+BZE(BZ_UNEXPECTED_EOF) \
+BZE(BZ_OUTBUFF_FULL) \
+BZE(BZ_CONFIG_ERROR) 
 
+BZ_EXTERN const char * BZ_API(BZ2_bzErrorString) ( 
+      int error_code
+   )
+{
+	switch (error_code)
+	{
+#define BZE(x) case x: return (#x);
+BZES
+#undef BZE
+	}
+	return ("BZ_UNKNOWN_ERROR");
+}
+
+#include <sys/sysmacros.h>
+
+#ifdef _KERNEL
+
+#include <sys/types.h>
+#include <sys/cmn_err.h>
+#include <sys/kmem.h>
+
+void
+bz_internal_error(int errcode)
+{
+	panic("bzip2 internal error: %s\n", BZ2_bzErrorString(errcode));
+}
+
 /*---------------------------------------------------*/
+typedef struct {
+	char *buf;
+	size_t sz;
+} bzap;
+
 static
 void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
 {
+	size_t sz = sizeof (bzap) + BZ2_BZALLOC_ALIGN + (items * size);
+	uintptr_t p = (uintptr_t)kmem_alloc(sz, KM_SLEEP);
+
+	if (p != NULL) {
+		bzap *pp = (bzap *)((p + sizeof (bzap) + BZ2_BZALLOC_ALIGN - 1) &
+		    -BZ2_BZALLOC_ALIGN);
+		pp[-1].buf = (void *)p;
+		pp[-1].sz = sz;
+		return (pp);
+	}
+	return (NULL);
+}
+
+static
+void default_bzfree ( void* opaque, void* addr )
+{
+	if (addr != NULL) {
+		bzap *pp = (bzap *)addr - 1;
+		kmem_free(pp->buf, pp->sz);
+	}
+}
+
+#else
+
+/*---------------------------------------------------*/
+static
+void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
+{
    void* v = malloc ( items * size );
    return v;
 }
@@ -110,8 +188,8 @@
 {
    if (addr != NULL) free ( addr );
 }
+#endif	/* _KERNEL */
 
-
 /*---------------------------------------------------*/
 static
 void prepare_new_block ( EState* s )
@@ -210,8 +288,92 @@
    return BZ_OK;
 }
 
+/*---------------------------------------------------*/
+/*
+ * returns the BZALLOC size needed for bzCompressInit
+ */
+int BZ_API(BZ2_bzCompressInitSize) ( 
+                     int        blockSize100k)
+{
+   Int32   n, t;
 
+   n       = 100000 * blockSize100k;
+   t       = 0;
+   t += ( sizeof(EState) );
+   t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN);
+   t += ( n                  * sizeof(UInt32) );
+   t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN);
+   t += ( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
+   t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN);
+   t += ( 65537              * sizeof(UInt32) );
+   t = P2ROUNDUP(t, BZ2_BZALLOC_ALIGN);
+   return (t);
+}
+
 /*---------------------------------------------------*/
+/*
+ * added to allow reuse of bz_stream without malloc/free
+ */
+int BZ_API(BZ2_bzCompressReset) ( bz_stream *strm )
+{
+   EState* s = strm->state;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (s == NULL) return BZ_MEM_ERROR;
+   s->strm = strm;
+
+   s->blockNo           = 0;
+   s->state             = BZ_S_INPUT;
+   s->mode              = BZ_M_RUNNING;
+   s->combinedCRC       = 0;
+   s->nblockMAX         = 100000 * s->blockSize100k - 19;
+
+   s->block             = (UChar*)s->arr2;
+   s->mtfv              = (UInt16*)s->arr1;
+   s->zbits             = NULL;
+   s->ptr               = (UInt32*)s->arr1;
+
+   strm->state          = s;
+   strm->total_in_lo32  = 0;
+   strm->total_in_hi32  = 0;
+   strm->total_out_lo32 = 0;
+   strm->total_out_hi32 = 0;
+   init_RL ( s );
+   prepare_new_block ( s );
+   return BZ_OK;
+}
+
+int BZ_API(BZ2_bzDecompressReset) ( bz_stream* strm )
+{
+   DState* s = strm->state;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (strm == NULL) return BZ_PARAM_ERROR;
+
+   s->strm                  = strm;
+
+   s->state                 = BZ_X_MAGIC_1;
+   s->bsLive                = 0;
+   s->bsBuff                = 0;
+   s->calculatedCombinedCRC = 0;
+   strm->total_in_lo32      = 0;
+   strm->total_in_hi32      = 0;
+   strm->total_out_lo32     = 0;
+   strm->total_out_hi32     = 0;
+
+   s->ll4                   = NULL;
+   s->ll16                  = NULL;
+   s->tt                    = NULL;
+   s->currBlockNo           = 0;
+
+
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
 static
 void add_pair_to_block ( EState* s )
 {
@@ -852,9 +1014,11 @@
       }
    }
 
+#if 0
    AssertH ( 0, 6001 );
 
    return 0;  /*NOTREACHED*/
+#endif
 }
 
 
@@ -1078,7 +1242,7 @@
       *nbytes_out_hi32 = bzf->strm.total_out_hi32;
 
    BZ_SETERR(BZ_OK);
-   BZ2_bzCompressEnd ( &(bzf->strm) );
+   (void) BZ2_bzCompressEnd ( &(bzf->strm) );
    free ( bzf );
 }
 
@@ -1152,7 +1316,7 @@
       { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
 
    if (bzf->initialisedOk)
-      (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
+      (void) BZ2_bzDecompressEnd ( &(bzf->strm) );
    free ( bzf );
 }
 
@@ -1282,15 +1446,15 @@
 
    /* normal termination */
    *destLen -= strm.avail_out;   
-   BZ2_bzCompressEnd ( &strm );
+   (void) BZ2_bzCompressEnd ( &strm );
    return BZ_OK;
 
    output_overflow:
-   BZ2_bzCompressEnd ( &strm );
+   (void) BZ2_bzCompressEnd ( &strm );
    return BZ_OUTBUFF_FULL;
 
    errhandler:
-   BZ2_bzCompressEnd ( &strm );
+   (void) BZ2_bzCompressEnd ( &strm );
    return ret;
 }
 
@@ -1330,20 +1494,20 @@
 
    /* normal termination */
    *destLen -= strm.avail_out;
-   BZ2_bzDecompressEnd ( &strm );
+   (void) BZ2_bzDecompressEnd ( &strm );
    return BZ_OK;
 
    output_overflow_or_eof:
    if (strm.avail_out > 0) {
-      BZ2_bzDecompressEnd ( &strm );
+      (void) BZ2_bzDecompressEnd ( &strm );
       return BZ_UNEXPECTED_EOF;
    } else {
-      BZ2_bzDecompressEnd ( &strm );
+      (void) BZ2_bzDecompressEnd ( &strm );
       return BZ_OUTBUFF_FULL;
-   };      
+   }   
 
    errhandler:
-   BZ2_bzDecompressEnd ( &strm );
+   (void) BZ2_bzDecompressEnd ( &strm );
    return ret; 
 }
 
diff -u bzip2-1.0.6/bzlib.h ./bzlib.h
--- bzip2-1.0.6/bzlib.h	Fri Sep 10 19:08:42 2010
+++ ./bzlib.h	Wed Dec 29 20:59:21 2010
@@ -18,10 +18,13 @@
    in the file LICENSE.
    ------------------------------------------------------------------ */
 
-
 #ifndef _BZLIB_H
 #define _BZLIB_H
 
+#ifdef _KERNEL
+#define	BZ_NO_STDIO
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -97,6 +100,8 @@
 
 /*-- Core (low-level) library functions --*/
 
+#define	BZ2_BZALLOC_ALIGN	(64)
+
 BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
       bz_stream* strm, 
       int        blockSize100k, 
@@ -104,6 +109,14 @@
       int        workFactor 
    );
 
+BZ_EXTERN int BZ_API(BZ2_bzCompressInitSize) ( 
+      int        blockSize100k
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressReset) ( 
+      bz_stream* strm 
+   );
+
 BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
       bz_stream* strm, 
       int action 
@@ -119,6 +132,10 @@
       int       small
    );
 
+BZ_EXTERN int BZ_API(BZ2_bzDecompressReset) ( 
+      bz_stream* strm 
+   );
+
 BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
       bz_stream* strm 
    );
@@ -127,8 +144,12 @@
       bz_stream *strm 
    );
 
+BZ_EXTERN const char * BZ_API(BZ2_bzErrorString) ( 
+      int error_code
+   );
 
 
+
 /*-- High(er) level library functions --*/
 
 #ifndef BZ_NO_STDIO
@@ -275,8 +296,7 @@
 }
 #endif
 
-#endif
-
 /*-------------------------------------------------------------*/
 /*--- end                                           bzlib.h ---*/
 /*-------------------------------------------------------------*/
+#endif /* _BZLIB_H */
diff -u bzip2-1.0.6/bzlib_private.h ./bzlib_private.h
--- bzip2-1.0.6/bzlib_private.h	Fri Sep 10 18:41:55 2010
+++ ./bzlib_private.h	Wed Dec 29 21:01:01 2010
@@ -22,7 +22,11 @@
 #ifndef _BZLIB_PRIVATE_H
 #define _BZLIB_PRIVATE_H
 
+#ifdef _KERNEL
+#define	BZ_NO_STDIO
+#else
 #include <stdlib.h>
+#endif
 
 #ifndef BZ_NO_STDIO
 #include <stdio.h>
@@ -85,9 +89,10 @@
 
 #else
 
+#pragma weak bz_internal_error
 extern void bz_internal_error ( int errcode );
 #define AssertH(cond,errcode) \
-   { if (!(cond)) bz_internal_error ( errcode ); }
+   { if (!(cond) && &bz_internal_error != NULL) bz_internal_error ( errcode ); }
 #define AssertD(cond,msg)                do { } while (0)
 #define VPrintf0(zf)                     do { } while (0)
 #define VPrintf1(zf,za1)                 do { } while (0)
@@ -156,7 +161,7 @@
 
 #define BZ_INITIALISE_CRC(crcVar)              \
 {                                              \
-   crcVar = 0xffffffffL;                       \
+   crcVar = 0xffffffffUL;                      \
 }
 
 #define BZ_FINALISE_CRC(crcVar)                \
@@ -492,9 +497,6 @@
                            Int32,  Int32, Int32 );
 
 
-#endif
-
-
 /*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
 
 #ifdef BZ_NO_STDIO
@@ -507,3 +509,4 @@
 /*-------------------------------------------------------------*/
 /*--- end                                   bzlib_private.h ---*/
 /*-------------------------------------------------------------*/
+#endif	/* _BZLIB_PRIVATE_H */
diff -u bzip2-1.0.6/crctable.c ./crctable.c
--- bzip2-1.0.6/crctable.c	Fri Sep 10 18:43:34 2010
+++ ./crctable.c	Wed Dec 29 21:01:57 2010
@@ -32,70 +32,70 @@
 
    /*-- Ugly, innit? --*/
 
-   0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
-   0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
-   0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
-   0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
-   0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
-   0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
-   0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
-   0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
-   0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
-   0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
-   0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
-   0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
-   0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
-   0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
-   0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
-   0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
-   0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
-   0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
-   0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
-   0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
-   0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
-   0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
-   0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
-   0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
-   0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
-   0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
-   0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
-   0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
-   0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
-   0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
-   0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
-   0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
-   0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
-   0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
-   0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
-   0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
-   0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
-   0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
-   0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
-   0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
-   0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
-   0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
-   0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
-   0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
-   0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
-   0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
-   0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
-   0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
-   0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
-   0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
-   0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
-   0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
-   0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
-   0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
-   0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
-   0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
-   0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
-   0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
-   0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
-   0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
-   0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
-   0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
-   0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
-   0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
+   0x00000000UL, 0x04c11db7UL, 0x09823b6eUL, 0x0d4326d9UL,
+   0x130476dcUL, 0x17c56b6bUL, 0x1a864db2UL, 0x1e475005UL,
+   0x2608edb8UL, 0x22c9f00fUL, 0x2f8ad6d6UL, 0x2b4bcb61UL,
+   0x350c9b64UL, 0x31cd86d3UL, 0x3c8ea00aUL, 0x384fbdbdUL,
+   0x4c11db70UL, 0x48d0c6c7UL, 0x4593e01eUL, 0x4152fda9UL,
+   0x5f15adacUL, 0x5bd4b01bUL, 0x569796c2UL, 0x52568b75UL,
+   0x6a1936c8UL, 0x6ed82b7fUL, 0x639b0da6UL, 0x675a1011UL,
+   0x791d4014UL, 0x7ddc5da3UL, 0x709f7b7aUL, 0x745e66cdUL,
+   0x9823b6e0UL, 0x9ce2ab57UL, 0x91a18d8eUL, 0x95609039UL,
+   0x8b27c03cUL, 0x8fe6dd8bUL, 0x82a5fb52UL, 0x8664e6e5UL,
+   0xbe2b5b58UL, 0xbaea46efUL, 0xb7a96036UL, 0xb3687d81UL,
+   0xad2f2d84UL, 0xa9ee3033UL, 0xa4ad16eaUL, 0xa06c0b5dUL,
+   0xd4326d90UL, 0xd0f37027UL, 0xddb056feUL, 0xd9714b49UL,
+   0xc7361b4cUL, 0xc3f706fbUL, 0xceb42022UL, 0xca753d95UL,
+   0xf23a8028UL, 0xf6fb9d9fUL, 0xfbb8bb46UL, 0xff79a6f1UL,
+   0xe13ef6f4UL, 0xe5ffeb43UL, 0xe8bccd9aUL, 0xec7dd02dUL,
+   0x34867077UL, 0x30476dc0UL, 0x3d044b19UL, 0x39c556aeUL,
+   0x278206abUL, 0x23431b1cUL, 0x2e003dc5UL, 0x2ac12072UL,
+   0x128e9dcfUL, 0x164f8078UL, 0x1b0ca6a1UL, 0x1fcdbb16UL,
+   0x018aeb13UL, 0x054bf6a4UL, 0x0808d07dUL, 0x0cc9cdcaUL,
+   0x7897ab07UL, 0x7c56b6b0UL, 0x71159069UL, 0x75d48ddeUL,
+   0x6b93dddbUL, 0x6f52c06cUL, 0x6211e6b5UL, 0x66d0fb02UL,
+   0x5e9f46bfUL, 0x5a5e5b08UL, 0x571d7dd1UL, 0x53dc6066UL,
+   0x4d9b3063UL, 0x495a2dd4UL, 0x44190b0dUL, 0x40d816baUL,
+   0xaca5c697UL, 0xa864db20UL, 0xa527fdf9UL, 0xa1e6e04eUL,
+   0xbfa1b04bUL, 0xbb60adfcUL, 0xb6238b25UL, 0xb2e29692UL,
+   0x8aad2b2fUL, 0x8e6c3698UL, 0x832f1041UL, 0x87ee0df6UL,
+   0x99a95df3UL, 0x9d684044UL, 0x902b669dUL, 0x94ea7b2aUL,
+   0xe0b41de7UL, 0xe4750050UL, 0xe9362689UL, 0xedf73b3eUL,
+   0xf3b06b3bUL, 0xf771768cUL, 0xfa325055UL, 0xfef34de2UL,
+   0xc6bcf05fUL, 0xc27dede8UL, 0xcf3ecb31UL, 0xcbffd686UL,
+   0xd5b88683UL, 0xd1799b34UL, 0xdc3abdedUL, 0xd8fba05aUL,
+   0x690ce0eeUL, 0x6dcdfd59UL, 0x608edb80UL, 0x644fc637UL,
+   0x7a089632UL, 0x7ec98b85UL, 0x738aad5cUL, 0x774bb0ebUL,
+   0x4f040d56UL, 0x4bc510e1UL, 0x46863638UL, 0x42472b8fUL,
+   0x5c007b8aUL, 0x58c1663dUL, 0x558240e4UL, 0x51435d53UL,
+   0x251d3b9eUL, 0x21dc2629UL, 0x2c9f00f0UL, 0x285e1d47UL,
+   0x36194d42UL, 0x32d850f5UL, 0x3f9b762cUL, 0x3b5a6b9bUL,
+   0x0315d626UL, 0x07d4cb91UL, 0x0a97ed48UL, 0x0e56f0ffUL,
+   0x1011a0faUL, 0x14d0bd4dUL, 0x19939b94UL, 0x1d528623UL,
+   0xf12f560eUL, 0xf5ee4bb9UL, 0xf8ad6d60UL, 0xfc6c70d7UL,
+   0xe22b20d2UL, 0xe6ea3d65UL, 0xeba91bbcUL, 0xef68060bUL,
+   0xd727bbb6UL, 0xd3e6a601UL, 0xdea580d8UL, 0xda649d6fUL,
+   0xc423cd6aUL, 0xc0e2d0ddUL, 0xcda1f604UL, 0xc960ebb3UL,
+   0xbd3e8d7eUL, 0xb9ff90c9UL, 0xb4bcb610UL, 0xb07daba7UL,
+   0xae3afba2UL, 0xaafbe615UL, 0xa7b8c0ccUL, 0xa379dd7bUL,
+   0x9b3660c6UL, 0x9ff77d71UL, 0x92b45ba8UL, 0x9675461fUL,
+   0x8832161aUL, 0x8cf30badUL, 0x81b02d74UL, 0x857130c3UL,
+   0x5d8a9099UL, 0x594b8d2eUL, 0x5408abf7UL, 0x50c9b640UL,
+   0x4e8ee645UL, 0x4a4ffbf2UL, 0x470cdd2bUL, 0x43cdc09cUL,
+   0x7b827d21UL, 0x7f436096UL, 0x7200464fUL, 0x76c15bf8UL,
+   0x68860bfdUL, 0x6c47164aUL, 0x61043093UL, 0x65c52d24UL,
+   0x119b4be9UL, 0x155a565eUL, 0x18197087UL, 0x1cd86d30UL,
+   0x029f3d35UL, 0x065e2082UL, 0x0b1d065bUL, 0x0fdc1becUL,
+   0x3793a651UL, 0x3352bbe6UL, 0x3e119d3fUL, 0x3ad08088UL,
+   0x2497d08dUL, 0x2056cd3aUL, 0x2d15ebe3UL, 0x29d4f654UL,
+   0xc5a92679UL, 0xc1683bceUL, 0xcc2b1d17UL, 0xc8ea00a0UL,
+   0xd6ad50a5UL, 0xd26c4d12UL, 0xdf2f6bcbUL, 0xdbee767cUL,
+   0xe3a1cbc1UL, 0xe760d676UL, 0xea23f0afUL, 0xeee2ed18UL,
+   0xf0a5bd1dUL, 0xf464a0aaUL, 0xf9278673UL, 0xfde69bc4UL,
+   0x89b8fd09UL, 0x8d79e0beUL, 0x803ac667UL, 0x84fbdbd0UL,
+   0x9abc8bd5UL, 0x9e7d9662UL, 0x933eb0bbUL, 0x97ffad0cUL,
+   0xafb010b1UL, 0xab710d06UL, 0xa6322bdfUL, 0xa2f33668UL,
+   0xbcb4666dUL, 0xb8757bdaUL, 0xb5365d03UL, 0xb1f740b4UL
 };
 
 
diff -u bzip2-1.0.6/decompress.c ./decompress.c
--- bzip2-1.0.6/decompress.c	Fri Sep 10 18:43:17 2010
+++ ./decompress.c	Fri Dec 31 00:58:25 2010
@@ -38,7 +38,7 @@
 
 /*---------------------------------------------------*/
 #define RETURN(rrr)                               \
-   { retVal = rrr; goto save_state_and_return; };
+   { retVal = rrr; goto save_state_and_return; }
 
 #define GET_BITS(lll,vvv,nnn)                     \
    case lll: s->state = lll;                      \
@@ -505,13 +505,13 @@
       for (i = 0; i <= 256; i++) {
          if (s->cftab[i] < 0 || s->cftab[i] > nblock) {
             /* s->cftab[i] can legitimately be == nblock */
-            RETURN(BZ_DATA_ERROR);
+            RETURN(BZ_DATA_ERROR)
          }
       }
       /* Check: cftab entries non-descending. */
       for (i = 1; i <= 256; i++) {
          if (s->cftab[i-1] > s->cftab[i]) {
-            RETURN(BZ_DATA_ERROR);
+            RETURN(BZ_DATA_ERROR)
          }
       }
 
@@ -575,7 +575,7 @@
 
       }
 
-      RETURN(BZ_OK);
+      RETURN(BZ_OK)
 
 
 
@@ -603,7 +603,7 @@
       s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
 
       s->state = BZ_X_IDLE;
-      RETURN(BZ_STREAM_END);
+      RETURN(BZ_STREAM_END)
 
       default: AssertH ( False, 4001 );
    }
